package com.skyyan.netty.jjf.protocol;

/**
 * 协议帧结构中的常量定义
 * 基于JJF(豫)360-2023规范
 * @author skyyan
 */
public final class FrameConstants {
    private FrameConstants() {}

    /** 帧起始符 (1字节) */
    public static final byte FRAME_START = 0x68;
    /** 帧结束符 (1字节) */
    public static final byte FRAME_END = 0x16;

    /** 报文头的固定长度 (起始符1 + 长度1 + 起始符1) */
    public static final int HEADER_FIXED_LENGTH = 1;
    /** 报文尾的固定长度 (CRC8 1 + 结束符1) */
    public static final int TAIL_FIXED_LENGTH = 2;

    /** 地址域固定长度 (A1+A2+A3) */
    public static final int ADDRESS_FIELD_LENGTH = 9;
    /** 控制域固定长度 */
    public static final int CONTROL_FIELD_LENGTH = 1;
    /** AFN功能码固定长度 */
    public static final int AFN_FIELD_LENGTH = 1;

    // --- AFN功能码定义 ---
    /** C.4 充值管理机注册 */
    public static final byte AFN_REGISTER = (byte) 0x91;
    /** C.5 充值管理机注册确认 */
    public static final byte AFN_REGISTER_CONFIRM = (byte) 0x92;
    /** C.6 余额查询 */
    public static final byte AFN_BALANCE_QUERY = (byte) 0x98;
    /** C.7 充值 */
    public static final byte AFN_RECHARGE = (byte) 0x95;
    /** C.8 阶梯水电价查询 */
    public static final byte AFN_WATER_ELECTRICITY_PRICE_QUERY = (byte) 0x99;


    /** C.9 开卡报文*/
    public static final byte AFN_OPEN_CARD = (byte) 0x97;


//    /** C.9 心跳 */
//    public static final byte AFN_HEARTBEAT = (byte) 0x9B;

    // --- 控制域定义 ---
    /** 上行报文 */
    public static final byte CONTROL_UPLINK = (byte) 0x01;
    /** 下行报文 */
    public static final byte CONTROL_DOWNLINK = (byte) 0x00;

    //====注册结果 成功
    /**注册成功*/
    public  static final byte RESULT_REG_SUCESS=(byte)0x00;
    /**注册失败*/
    public  static final byte RESULT_REG_FAIL=(byte)0x01;

    public static void main(String[] args){
        System.out.println("你好");
    }

}

